// 给你一个只包含 '(' 和 ')' 的字符串，找出最长有效（格式正确且连续）括号子串的长度。

// 输入：s = "(()"
// 输出：2
// 解释：最长有效括号子串是 "()"

// 我的思路：暴力求解
/**
 * 从0开始遍历，求[0, i]之间的最长有效括号子串
 * 
 */


/**
 * @param {string} s
 * @return {number}
 */
var longestValidParentheses = function (s) {
    let res = 0;
    let st = new Array;
    st.push(-1);

    for (let i = 0; i < s.length; i++) {
        if (s[i] === '(') {
            st.push(i);
        } else {
            st.pop();
            if (st.length === 0) {
                st.push(i);
            } else {
                res = Math.max(res, i - st[st.length - 1]);
            }
        }
    }
    return res;

};

let s = "()(()";
const result = longestValidParentheses(s);
console.log(result);